package com.dp.singleton;

/**
 * 单例模式-枚举 （可以解决反射和反序列化带来的破坏问题）
 *      阻止反射的破坏：在反射方法中不允许使用反射创建枚举类
 *      阻止反序列化的破坏：在序列化方法中，仅将枚举类型的name属性输出到了结果中，
 *      在反序列化中，通过Enum的valueOf方法，根据名字去查找对应枚举
 */
public enum EnumSingleton {
    INSTANCE;

    private Object data;

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public static EnumSingleton getInstance() {
        return INSTANCE;
    }
}
